home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / ip / nfs / amd / amd-5.2 / config / os-bsd44.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-06-23  |  3.9 KB  |  160 lines

  1. /* $Id: os-bsd44.h,v 5.2 90/06/23 22:20:38 jsp Rel $ */
  2.  
  3. /*
  4.  * 4.4 BSD definitions for Amd (automounter)
  5.  *
  6.  * Copyright (c) 1990 Jan-Simon Pendry
  7.  * Copyright (c) 1990 Imperial College of Science, Technology & Medicine
  8.  * Copyright (c) 1990 The Regents of the University of California.
  9.  * All rights reserved.
  10.  *
  11.  * This code is derived from software contributed to Berkeley by
  12.  * Jan-Simon Pendry at Imperial College, London.
  13.  *
  14.  * Redistribution and use in source and binary forms are permitted provided
  15.  * that: (1) source distributions retain this entire copyright notice and
  16.  * comment, and (2) distributions including binaries display the following
  17.  * acknowledgement:  ``This product includes software developed by the
  18.  * University of California, Berkeley and its contributors'' in the
  19.  * documentation or other materials provided with the distribution and in
  20.  * all advertising materials mentioning features or use of this software.
  21.  * Neither the name of the University nor the names of its contributors may
  22.  * be used to endorse or promote products derived from this software without
  23.  * specific prior written permission.
  24.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
  25.  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  26.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  27.  *
  28.  *    %W% (Berkeley) %G%
  29.  */
  30.  
  31. /*
  32.  * Does the compiler grok void *
  33.  */
  34. #define    VOIDP
  35.  
  36. /*
  37.  * Which version of the Sun RPC library we are using
  38.  * This is the implementation release number, not
  39.  * the protocol revision number.
  40.  */
  41. #define    RPC_3
  42.  
  43. /*
  44.  * Which version of the NFS interface are we using.
  45.  * This is the implementation release number, not
  46.  * the protocol revision number.
  47.  */
  48. #define    NFS_44
  49. #define HAS_TCP_NFS
  50.  
  51. /*
  52.  * Does this OS have NDBM support?
  53.  */
  54. #define OS_HAS_NDBM
  55.  
  56. /*
  57.  * The mount table is obtained from the kernel
  58.  */
  59. #undef    UPDATE_MTAB
  60.  
  61. /*
  62.  * No mntent info on 4.4 BSD
  63.  */
  64. #undef    MNTENT_HDR
  65.  
  66. /*
  67.  * Name of filesystem types
  68.  */
  69. #define    MOUNT_TYPE_NFS    MOUNT_NFS
  70. #define    MOUNT_TYPE_UFS    MOUNT_UFS
  71. #undef MTAB_TYPE_UFS
  72. #define    MTAB_TYPE_UFS    "ufs"
  73. #define    MTAB_TYPE_MFS    "mfs"
  74.  
  75. /*
  76.  * How to unmount filesystems
  77.  */
  78. #undef UNMOUNT_TRAP
  79. #undef    NEED_UMOUNT_FS
  80. #define    NEED_UMOUNT_BSD
  81.  
  82. /*
  83.  * How to copy an address into an NFS filehandle
  84.  */
  85. #undef NFS_SA_DREF
  86. #define    NFS_SA_DREF(dst, src) { \
  87.         (dst).addr = (struct sockaddr *) (src); \
  88.         (dst).sotype = SOCK_DGRAM; \
  89.         (dst).proto = 0; \
  90.     }
  91.  
  92. /*
  93.  * Byte ordering
  94.  */
  95. #ifndef BYTE_ORDER
  96. #include <machine/endian.h>
  97. #endif /* BYTE_ORDER */
  98.  
  99. #undef ARCH_ENDIAN
  100. #if BYTE_ORDER == LITTLE_ENDIAN
  101. #define ARCH_ENDIAN "little"
  102. #else
  103. #if BYTE_ORDER == BIG_ENDIAN
  104. #define ARCH_ENDIAN "big"
  105. #else
  106. XXX - Probably no hope of running Amd on this machine!
  107. #endif /* BIG */
  108. #endif /* LITTLE */
  109.  
  110. /*
  111.  * Miscellaneous 4.4 BSD bits
  112.  */
  113. #define MISC_RPC
  114. #define    NEED_MNTOPT_PARSER
  115. #define    SHORT_MOUNT_NAME
  116.  
  117. #define    MNTMAXSTR       128
  118.  
  119. #define    MNTTYPE_UFS    "ufs"        /* Un*x file system */
  120. #define    MNTTYPE_NFS    "nfs"        /* network file system */
  121. #define    MNTTYPE_MFS    "mfs"        /* memory file system */
  122. #define    MNTTYPE_IGNORE    "ignore"    /* No type specified, ignore this entry */
  123.  
  124. #define    M_RDONLY    MNT_RDONLY
  125. #define    M_SYNC        MNT_SYNCHRONOUS
  126. #define    M_NOEXEC    MNT_NOEXEC
  127. #define    M_NOSUID    MNT_NOSUID
  128. #define    M_NODEV        MNT_NODEV
  129.  
  130. #define    MNTOPT_SOFT    "soft"        /* soft mount */
  131. #define    MNTOPT_INTR    "intr"        /* interrupts allowed */
  132.  
  133. struct mntent {
  134.     char    *mnt_fsname;    /* name of mounted file system */
  135.     char    *mnt_dir;    /* file system path prefix */
  136.     char    *mnt_type;    /* MNTTYPE_* */
  137.     char    *mnt_opts;    /* MNTOPT* */
  138.     int    mnt_freq;    /* dump frequency, in days */
  139.     int    mnt_passno;    /* pass number on parallel fsck */
  140. };
  141.  
  142. /*
  143.  * Type of a file handle
  144.  */
  145. #undef NFS_FH_TYPE
  146. #define    NFS_FH_TYPE    nfsv2fh_t *
  147.  
  148. /*
  149.  * How to get a mount list
  150.  */
  151. #undef    READ_MTAB_FROM_FILE
  152. #define    READ_MTAB_BSD_STYLE
  153.  
  154. /*
  155.  * The data for the mount syscall needs the path in addition to the
  156.  * host name since that is the only source of information about the
  157.  * mounted filesystem.
  158.  */
  159. #define    NFS_ARGS_NEEDS_PATH
  160.